home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / misc / ini_library / fd / ini_lib.fd
Text File  |  1999-11-30  |  6KB  |  121 lines

  1. ##base _INIBase
  2. ##bias 30
  3. ##public
  4. *
  5. * ini_lib.fd, v31.00, 14 Nov 98
  6. * Written by Sebastian Vater, known as Basty/Seasons.
  7. *
  8. * This library is freeware. This library may also be commercial used without
  9. * need of any payment for me.
  10. *
  11. * The ini.library is the base of all programs using the Windows .INI file
  12. * style for configuration. It allows to handle those files easily. A Windows
  13. * .INI file looks like (example):
  14. *
  15. * /* The ini.library also supports multiline comments,
  16. *    as you know them from the C/C++ language.
  17. *    This example configures screen modes and user name. */
  18. *
  19. * [Display]
  20. * ScreenWidth = 640            ; comments are allowed!
  21. * ScreenHeight = 256           * aren't they?
  22. * Depth = 4
  23. * ColorTable = 0x000, 0xFFF,
  24. *                     0x777, 0x333
  25. *
  26. * [User]
  27. * FirstName = Sebastian
  28. * LastName = Vater
  29. *
  30. * Miscellanous functions (mainly for coder support)
  31. iniAllocPMem(byteSize)(D0)
  32. iniFreePMem(memoryBlock,byteSize)(A1,D0)
  33. iniAllocNameStr(CStr)(A0)
  34. iniFreeNameStr(NameStr)(A0)
  35. iniSetString(StructPos,CStr)(A0/A1)
  36. iniSetNameStr(StructPos,NameStr)(A0/A1)
  37. *
  38. * INI file management
  39. *
  40. iniOpenDefault(address,name,len)(A0/A1,D0)
  41. iniOpenFile(name,accessMode)(D1/D2)
  42. iniOpenFromFH(fh,len)(A0,D0)
  43. iniOpenMem(address,len)(A0,D0)
  44. iniClose(iniFile)(A0)
  45. iniSaveFile(iniFile,name,accessMode)(A0,D1/D2)
  46. iniSaveToFH(fh,iniFile)(A0/A1)
  47. *
  48. * INI file context construction functions
  49. *
  50. iniCreateContext(ContextName)(A0)
  51. iniFreeContext(ContextStr)(A0)
  52. iniAddContext(iniFile,ContextStr)(A0/A1)
  53. iniRemContext(iniFile)(A0)
  54. iniInsertContext(iniFile,ContextStr,PredContext)(A0/A1/A2)
  55. iniDeleteContext(ContextStr)(A0)
  56. *
  57. * INI file context item construction functions
  58. *
  59. iniCreateContextItem(CStr)(A0)
  60. iniFreeContextItem(ContextItemLine)(A0)
  61. iniAddContextItem(ContextStr,ContextItemLine)(A0/A1)
  62. iniRemContextItem(ContextStr)(A0)
  63. iniInsertContextItem(ContextStr,ContextItemLine,PredLine)(A0/A1/A2)
  64. iniDeleteContextItem(ContextItemLine)(A0)
  65. *
  66. * Evaluating INI context and item fields
  67. *
  68. iniReadLong(iniFile,ContextName,ItemName,Default,Flags)(A0/A1/A2,D0/D1)
  69. iniReadFloat(iniFile,ContextName,ItemName,Default,Flags)(A0/A1/A2,D0/D1)
  70. iniReadStr(iniFile,ContextName,ItemName,Default,Flags)(A0/A1/A2/A3,D0)
  71. iniReadByteA(iniFile,ContextName,ItemName,Array,Entries,Flags)(A0/A1/A2/A3,D0/D1)
  72. iniReadWordA(iniFile,ContextName,ItemName,Array,Entries,Flags)(A0/A1/A2/A3,D0/D1)
  73. iniReadLongA(iniFile,ContextName,ItemName,Array,Entries,Flags)(A0/A1/A2/A3,D0/D1)
  74. iniReadFloatA(iniFile,ContextName,ItemName,Array,Entries,Flags)(A0/A1/A2/A3,D0/D1)
  75. iniReadStrA(iniFile,ContextName,ItemName,Array,Entries,Flags)(A0/A1/A2/A3,D0/D1)
  76. iniWriteLong(iniFile,ContextName,ItemName,Value,Flags,Format,Len,ZeroSep)(A0/A1/A2,D0/D1/D2/D3/D4)
  77. iniWriteFloat(iniFile,ContextName,ItemName,Value,Flags,FltFormat,IntLen,FracLen,ZeroSep)(A0/A1/A2,D0/D1/D2/D3/D4/D5)
  78. iniWriteStr(iniFile,ContextName,ItemName,String,Flags)(A0/A1/A2/A3,D0)
  79. iniWriteByteA(iniFile,ContextName,ItemName,Array,Entries,Flags,Format,Len,ZeroSep)(A0/A1/A2/A3,D0/D1/D2/D3/D4)
  80. iniWriteWordA(iniFile,ContextName,ItemName,Array,Entries,Flags,Format,Len,ZeroSep)(A0/A1/A2/A3,D0/D1/D2/D3/D4)
  81. iniWriteLongA(iniFile,ContextName,ItemName,Array,Entries,Flags,Format,Len,ZeroSep)(A0/A1/A2/A3,D0/D1/D2/D3/D4)
  82. iniWriteFloatA(iniFile,ContextName,ItemName,Array,Entries,Flags,FltFormat,IntLen,FracLen,ZeroSep)(A0/A1/A2/A3,D0/D1/D2/D3/D4/D5)
  83. iniWriteStrA(iniFile,ContextName,ItemName,Array,Entries,Flags)(A0/A1/A2/A3,D0/D1)
  84. *
  85. * Low level functions (these evaluate single lines)
  86. *
  87. iniGetContextName(ContextLine,Buffer)(A0/A1)
  88. iniGetContextItem(ContextStr,ContextItemLine,Buffer)(A0/A1/A2)
  89. iniGetContextItemData(ContextStr,ContextItemLine,Buffer)(A0/A1/A2)
  90. iniGetContextItemDataA(ContextStr,ContextItemLine,Buffer,Number)(A0/A1/A2,D0)
  91. iniCheckComment(ContextStr,ContextItemLine)(A0/A1)
  92. iniGetNumArrays(ContextStr,ContextItemLine)(A0/A1)
  93. iniGetArrayLine(ContextStr,ContextItemLine,Number)(A0/A1,D0)
  94. iniGetArrayPos(ContextStr,ContextItemLine,Number)(A0/A1,D0)
  95. iniGetLong(ContextStr,ContextItemLine,Default)(A0/A1,D0)
  96. iniGetFloat(ContextStr,ContextItemLine,Default)(A0/A1,D0)
  97. iniGetStr(ContextStr,ContextItemLine,Default)(A0/A1/A2)
  98. iniGetByteA(ContextStr,ContextItemLine,Array,Entries)(A0/A1/A2,D0)
  99. iniGetWordA(ContextStr,ContextItemLine,Array,Entries)(A0/A1/A2,D0)
  100. iniGetLongA(ContextStr,ContextItemLine,Array,Entries)(A0/A1/A2,D0)
  101. iniGetFloatA(ContextStr,ContextItemLine,Array,Entries)(A0/A1/A2,D0)
  102. iniGetStrA(ContextStr,ContextItemLine,Array,Entries)(A0/A1/A2,D0)
  103. iniPutLong(ContextStr,ContextItemLine,Value,Format,Len,ZeroSep)(A0/A1,D0/D1/D2/D3)
  104. iniPutFloat(ContextStr,ContextItemLine,Value,FltFormat,IntLen,FracLen,ZeroSep)(A0/A1,D0/D1/D2/D3/D4)
  105. iniPutStr(ContextStr,ContextItemLine,String)(A0/A1/A2)
  106. iniPutByteA(ContextStr,ContextItemLine,Array,Entries,Format,Len,ZeroSep)(A0/A1/A2,D0/D1/D2/D3)
  107. iniPutWordA(ContextStr,ContextItemLine,Array,Entries,Format,Len,ZeroSep)(A0/A1/A2,D0/D1/D2/D3)
  108. iniPutLongA(ContextStr,ContextItemLine,Array,Entries,Format,Len,ZeroSep)(A0/A1/A2,D0/D1/D2/D3)
  109. iniPutFloatA(ContextStr,ContextItemLine,Array,Entries,FltFormat,IntLen,FracLen,ZeroSep)(A0/A1/A2,D0/D1/D2/D3/D4)
  110. iniPutStrA(ContextStr,ContextItemLine,Array,Entries)(A0/A1/A2,D0)
  111. iniStrToInt(String,Default)(A0,D0)
  112. iniIntToStr(Buffer,Integer,Format,Len,ZeroSep)(A0,D0/D1/D2/D3)
  113. iniStrToFloat(String,Default)(A0,D0)
  114. iniFloatToStr(Buffer,Float,FltFormat,IntLen,FracLen,ZeroSep)(A0,D0/D1/D2/D3/D4)
  115. *
  116. * INI scan functions (search for contexts, context items)
  117. *
  118. iniFindContext(iniFile,ContextName,Flags)(A0/A1,D0)
  119. iniFindItem(ContextStr,ContextItemName,Flags)(A0/A1,D0)
  120. ##end
  121.